MPEG-2 is a standard for encoding and compressing of video data. Video data comprises a series of frames. In a progressive scan, the frames represent instantaneous images, while in an interlaced scan, the frames comprise two fields, each of which represents a portion of an image at adjacent times. An MPEG-2 encoder uses a variety of techniques that take advantage of spatial and temporal redundancies in the video data to compress each frame, thereby resulting in data structures known as pictures. The pictures are then grouped together in a set of groups. The groups of pictures form what is known as a video sequence. The video sequence begins with a sequence start code followed by a sequence header, and terminates with a sequence end code. Any number of sequence headers can be placed throughout the video sequence to allow decoding entry points. The video sequences together form what is known as the video elementary stream.
The video elementary stream is packetized, multiplexed, and transmitted to an MPEG-2 decoder. The MPEG-2 decoder recovers the original video sequence for display on a monitor. MPEG-2 decoders include, among other features, a video decoder and a display engine. The video decoder decodes and decompresses the video elementary stream, and provides decoded frames to the display engine. The display engine is responsible for scaling the video picture, rendering the graphics, and constructing the complete display, among other functions. Once the display is ready to be displayed, it is converted to analog video and provided to a monitor.
The video elementary stream can include video data from a variety of sources. Additionally, the video data can be formatted in a variety of different ways. For example, the video data can include standard television sized frames followed by frames in wide screen format. The size and format of the frames are indicated by scaling parameters stored in the video sequence headers. The sequence headers specify the horizontal and vertical size of the pictures, the aspect ratio, the chroma subsampling format, the picture rate, the use of progressive scan or interlace, level, and bit rate, and the quantizing matrices used in intra and inter-coded pictures.
As noted above, the display engine is responsible for scaling the pictures. The display engine includes a scalar for sizing the pictures. The scalar includes registers which indicate the horizontal and vertical size of the frames to be displayed. As the video decoder decodes the frames, the video decoder examines the horizontal and vertical size parameters to detect any changes. Upon detecting a change in the horizontal and/or vertical size parameters, the video decoder signals the scalar to scale up or scale down as the case may be. The signal indicating the scale up or scale down arrives at the scalar shortly after the decoding time for the applicable frame. However, there is a variable time lag between decode time and the time the decoded frame is received at the display engine. As a result, the display engine during the time lag, displays the frames with the new horizontal and vertical size.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with the present invention as set forth in the remainder of the present application with reference to the drawings.